package cn.web.tunnelrobot.websocket;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.*;
import java.net.Socket;
import java.net.ServerSocket;

public class Server {
    //log4j
    static Logger logger = LoggerFactory.getLogger(Server.class);
    //监听端口
    //服务端相当于TCP的服务器 实时监听9093端口。沉降收敛设备会与服务端ip:9093进行连接
    //在本机跑服务端需要做映射（用frp） 沉降收敛设备才能连上
    private static final int PORT = 45001;

    public static void start() throws IOException {
        ServerSocket serverSocket = null;
        Socket socket = null;
        try {
            //建立服务器的Socket，并设定一个监听的端口PORT
            serverSocket = new ServerSocket(PORT);
            //由于需要进行循环监听，因此获取消息的操作应放在一个while大循环中
            while(true){
                try {
                    //建立跟客户端的连接
                    socket = serverSocket.accept();
                } catch (Exception e) {
                    logger.error("建立与客户端的连接出现异常");
                }
                ServerThread thread = new ServerThread(socket);
                thread.start();
            }
        } catch (Exception e) {
            logger.error("硬件采集数据-端口被占用");
        }finally {
            serverSocket.close();
        }
    }
}

